package org.lanqiao.tjut.Dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.lanqiao.tjut.Bean.CourseBean;
import org.lanqiao.tjut.Bean.ScoreBean;
import org.lanqiao.tjut.Bean.TeacherBean;
import org.lanqiao.tjut.DB.DBDriverFactory;

public class TeaInfoManagerDao {

	/**
	 * 添加教师信息
	 * 
	 * @param teaB
	 *            教师实体对象
	 * @return 保存信息结果集
	 */
	public int saveTeaInfo(TeacherBean teaB) {
		int re_i = 0;
		if (teaB.getTeaid() == null) {
			// 新增处理
			String strSql = "INSERT INTO EDUTEA(TEANAME ,TEAPSW,TEAAGE ,TEASEX ,TEATEL,TEAADDRESS) VALUES(?,?,?,?,?,?)";
			// 保存数据
			re_i = DBDriverFactory.getDBDriverInstance().update(strSql, new Object[] { teaB.getTeaname(),
					teaB.getTeapsw(), teaB.getTeaage(), teaB.getTeasex(), teaB.getTeatel(), teaB.getTeaaddress() });
		} else {
			// 修改处理
			String strSql = "UPDATE EDUTEA SET TEANAME = ?,TEAPSW = ?,TEAAGE = ?,TEASEX = ?,TEATEL = ?,TEAADDRESS=? WHERE TEAID = ?";
			// 保存数据
			re_i = DBDriverFactory.getDBDriverInstance().update(strSql,
					new Object[] { teaB.getTeaname(), teaB.getTeapsw(), teaB.getTeaage(), teaB.getTeasex(),
							teaB.getTeatel(), teaB.getTeaaddress(), teaB.getTeaid() });
		}

		return re_i;
	}

	/**
	 * 根据条件进行用户信息查询
	 * 
	 * @param usersB
	 *            查询条件
	 * @return 查询结果集
	 */
	public List<TeacherBean> doQueryByParas(TeacherBean teaB) {
		// 根据条件进行数据查询，没有输入查询条件，则进行全部查询
		StringBuilder sbSql = new StringBuilder("SELECT * FROM EDUTEA WHERE 1=1 ");
		// 根据查询条件动态拼写查询语句和参数
		List<Object> lstParas = new ArrayList<Object>();
		if (teaB.getTeaname() != null && !teaB.getTeaname().trim().equals("")) {
			// 姓名查询
			sbSql.append(" AND TEANAME LIKE ? ");
			// 添加参数
			lstParas.add("%%" + teaB.getTeaname() + "%%");
		}
		if (teaB.getTeasex() != null && !teaB.getTeasex().trim().equals("")) {
			// 姓名查询
			sbSql.append(" AND TEASEX = ? ");
			// 添加参数
			lstParas.add(teaB.getTeasex());
		}
		if (teaB.getTeaage() > 0) {
			// 姓名查询
			sbSql.append(" AND TEAAGE >= ? ");
			// 添加参数
			lstParas.add(teaB.getTeaage());
		}
		if (teaB.getTeaage2() > 0) {
			// 姓名查询
			sbSql.append(" AND TEAAGE <= ? ");
			// 添加参数
			lstParas.add(teaB.getTeaage2());
		}
		// 进行排序
		sbSql.append("  ORDER BY TEAID ");
		// 进行查询操作
		List<TeacherBean> lstTea = DBDriverFactory.getDBDriverInstance().query(sbSql.toString(),
				new BeanListHandler<TeacherBean>(TeacherBean.class), lstParas.toArray());
		return lstTea;

	}

	/**
	 * 删除指定的用户信息
	 * 
	 * @param userId
	 *            删除条件（指定用户id）
	 * @return 删除结果集
	 */
	public int deleteTeaById(int teaId) {
		int re_i = 0;
		// 要执行的sql语句
		String strSql = "DELETE FROM EDUTEA WHERE TEAID=?";
		// 删除数据
		re_i = DBDriverFactory.getDBDriverInstance().update(strSql, new Object[] { teaId });
		return re_i;
	}

	/**
	 * 获取教师信息
	 * 
	 * @return 教师信息结果集
	 */
	public List<TeacherBean> getAllTeaInfo() {
		// 查询数据库的sql语句
		String strSql = "SELECT * FROM EDUTEA ORDER BY TEAID DESC";
		List<TeacherBean> lstTea = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanListHandler<TeacherBean>(TeacherBean.class));
		return lstTea;
	}

	/**
	 * 获取指定教师信息
	 * 
	 * @param strUid
	 *            指定教师ID
	 * @return 指定教师信息
	 */
	public TeacherBean getTeaInfoById(String strUid) {
		// 查询数据
		// 查询数据库的sql语句
		String strSql = "SELECT * FROM EDUTEA WHERE TEAID=?";
		TeacherBean teaB = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanHandler<TeacherBean>(TeacherBean.class), new Object[] { strUid });
		return teaB;
	}

	/**
	 * 保存课程添加信息
	 * 
	 * @param scoB
	 *            课程信息
	 * @return 保存结果
	 */
	public int saveTeaCourseInfo(ScoreBean scoB) {
		int re_i = 0;
		if (scoB.getScoid() == null) {
			// 新增处理
			String strSql = "INSERT INTO EDUSCORE(TEANAME ,TEAID,COUID ,COUNAME ,STUID,STUNAME) VALUES(?,?,?,?,?,?)";
			// 保存数据
			re_i = DBDriverFactory.getDBDriverInstance().update(strSql, new Object[] { scoB.getTeaname(),
					scoB.getTeaid(), scoB.getCouid(), scoB.getCouname(), scoB.getStuid(), scoB.getStuname() });
		} else {
			// 修改处理
			String strSql = "UPDATE EDUSCORE SET TEANAME = ?,TEAID = ?,COUID = ?,COUNAME = ?,STUID = ?,STUNAME=? WHERE SCOID = ?";
			// 保存数据
			re_i = DBDriverFactory.getDBDriverInstance().update(strSql, new Object[] { scoB.getTeaname(),
					scoB.getTeaid(), scoB.getCouid(), scoB.getCouname(), scoB.getStuid(), scoB.getStuname() });
		}

		return re_i;
	}

	/**
	 * 获取所有教师课程信息
	 * 
	 * @return 查询结果集
	 */
	public List<ScoreBean> getAllTeaCourseInfo() {
		// 查询数据库的sql语句
		String strSql = "SELECT * FROM EDUSCORE WHERE TEAID IN (SELECT TEAID FROM EDUTEA)ORDER BY TEAID DESC";
		List<ScoreBean> lstSco = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanListHandler<ScoreBean>(ScoreBean.class));
		return lstSco;
	}

	/**
	 * 通过教师id获取课程信息
	 * 
	 * @param teaid
	 *            教师id
	 * @return 查询结果
	 */
	public CourseBean getCourseInfoByTeaid(String teaid) {
		// 查询数据库的sql语句
		String strSql = "SELECT * FROM EDUCOU WHERE TEAID=?";
		CourseBean couB = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanHandler<CourseBean>(CourseBean.class), new Object[] { teaid });
		return couB;
	}

	/**
	 * 获取所有课程信息
	 * 
	 * @return 查询结果集
	 */
	public List<CourseBean> getAllTCourseInfo() {
		
		// 查询数据库的sql语句
		String strSql = "SELECT * FROM EDUCOU ORDER BY COUID DESC";
		List<CourseBean> lstCou = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanListHandler<CourseBean>(CourseBean.class));
		return lstCou;
	}
}
